var runtime.sched
445 uses
runtime (current package)
cgocall.go#L421: hz := sched.profilehz
debug.go#L75: lock(&sched.lock)
debug.go#L78: unlock(&sched.lock)
debug.go#L83: sched.customGOMAXPROCS = true
debug.go#L84: unlock(&sched.lock)
debug.go#L124: lock(&sched.lock)
debug.go#L126: custom := sched.customGOMAXPROCS
debug.go#L127: unlock(&sched.lock)
debug.go#L142: lock(&sched.lock)
debug.go#L143: sched.customGOMAXPROCS = false
debug.go#L144: unlock(&sched.lock)
debug.go#L168: total := sched.totalMutexWaitTime.Load()
debug.go#L170: total += sched.totalRuntimeLockWaitTime.Load()
debugcall.go#L248: lock(&sched.lock)
debugcall.go#L250: unlock(&sched.lock)
lock_spinbit.go#L138: case &sched.lock:
mcheckmark.go#L134: sched.gcwaiting.Store(false)
mcheckmark.go#L143: sched.gcwaiting.Store(true)
metrics.go#L322: sched.stwTotalTimeGC.write(out)
metrics.go#L447: sched.timeToRun.write(out)
metrics.go#L452: sched.stwStoppingTimeGC.write(out)
metrics.go#L457: sched.stwStoppingTimeOther.write(out)
metrics.go#L462: sched.stwTotalTimeGC.write(out)
metrics.go#L467: sched.stwTotalTimeOther.write(out)
mgc.go#L1142: sched.idleTime.Store(0)
mgc.go#L1549: lock(&sched.lock)
mgc.go#L1551: unlock(&sched.lock)
mgc.go#L1841: lock(&sched.sudoglock)
mgc.go#L1843: for sg = sched.sudogcache; sg != nil; sg = sgnext {
mgc.go#L1847: sched.sudogcache = nil
mgc.go#L1848: unlock(&sched.sudoglock)
mgc.go#L1852: lock(&sched.deferlock)
mgc.go#L1856: for d = sched.deferpool; d != nil; d = dlink {
mgc.go#L1860: sched.deferpool = nil
mgc.go#L1861: unlock(&sched.deferlock)
mgclimit.go#L213: sched.idleTime.Add(duration)
mgclimit.go#L472: sched.idleTime.Add(duration)
mgcmark.go#L303: lock(&sched.gFree.lock)
mgcmark.go#L304: list := sched.gFree.stack
mgcmark.go#L305: sched.gFree.stack = gList{}
mgcmark.go#L306: unlock(&sched.gFree.lock)
mgcmark.go#L327: lock(&sched.gFree.lock)
mgcmark.go#L328: sched.gFree.noStack.pushAll(q)
mgcmark.go#L329: unlock(&sched.gFree.lock)
mgcmark.go#L1201: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcmark.go#L1231: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcpacer.go#L716: if sched.npidle.Load() != 0 && sched.nmspinning.Load() == 0 {
mstats.go#L463: lock(&sched.sysmonlock)
mstats.go#L503: unlock(&sched.sysmonlock)
mstats.go#L973: s.TotalTime = sched.totaltime + (now-sched.procresizetime)*int64(gomaxprocs)
mstats.go#L974: s.IdleTime += sched.idleTime.Load()
panic.go#L503: if len(pp.deferpool) == 0 && sched.deferpool != nil {
panic.go#L504: lock(&sched.deferlock)
panic.go#L505: for len(pp.deferpool) < cap(pp.deferpool)/2 && sched.deferpool != nil {
panic.go#L506: d := sched.deferpool
panic.go#L507: sched.deferpool = d.link
panic.go#L511: unlock(&sched.deferlock)
panic.go#L562: lock(&sched.deferlock)
panic.go#L563: last.link = sched.deferpool
panic.go#L564: sched.deferpool = first
panic.go#L565: unlock(&sched.deferlock)
proc.go#L409: if !gp.preempt && sched.npidle.Load() > 0 {
proc.go#L498: lock(&sched.sudoglock)
proc.go#L500: for len(pp.sudogcache) < cap(pp.sudogcache)/2 && sched.sudogcache != nil {
proc.go#L501: s := sched.sudogcache
proc.go#L502: sched.sudogcache = s.next
proc.go#L506: unlock(&sched.sudoglock)
proc.go#L564: lock(&sched.sudoglock)
proc.go#L565: last.next = sched.sudogcache
proc.go#L566: sched.sudogcache = first
proc.go#L567: unlock(&sched.sudoglock)
proc.go#L833: lockInit(&sched.lock, lockRankSched)
proc.go#L834: lockInit(&sched.sysmonlock, lockRankSysmon)
proc.go#L835: lockInit(&sched.deferlock, lockRankDefer)
proc.go#L836: lockInit(&sched.sudoglock, lockRankSudog)
proc.go#L862: sched.maxmcount = 10000
proc.go#L918: lock(&sched.lock)
proc.go#L919: sched.lastpoll.Store(nanotime())
proc.go#L923: sched.customGOMAXPROCS = true
proc.go#L938: unlock(&sched.lock)
proc.go#L963: assertLockHeld(&sched.lock)
proc.go#L974: if count > sched.maxmcount {
proc.go#L975: print("runtime: program exceeds ", sched.maxmcount, "-thread limit\n")
proc.go#L985: assertLockHeld(&sched.lock)
proc.go#L987: if sched.mnext+1 < sched.mnext {
proc.go#L990: id := sched.mnext
proc.go#L991: sched.mnext++
proc.go#L1005: lock(&sched.lock)
proc.go#L1027: unlock(&sched.lock)
proc.go#L1072: sched.nmspinning.Add(1)
proc.go#L1073: sched.needspinning.Store(0)
proc.go#L1186: sched.stopwait = freezeStopWait
proc.go#L1187: sched.gcwaiting.Store(true)
proc.go#L1350: sched.totalMutexWaitTime.Add((now - gp.trackingStamp) * gTrackingPeriod)
proc.go#L1372: sched.timeToRun.record(gp.runnableTime)
proc.go#L1652: lock(&sched.lock)
proc.go#L1654: sched.stopwait = gomaxprocs
proc.go#L1655: sched.gcwaiting.Store(true)
proc.go#L1660: sched.stopwait--
proc.go#L1671: sched.stopwait--
proc.go#L1687: sched.stopwait--
proc.go#L1689: wait := sched.stopwait > 0
proc.go#L1690: unlock(&sched.lock)
proc.go#L1696: if notetsleep(&sched.stopnote, 100*1000) {
proc.go#L1697: noteclear(&sched.stopnote)
proc.go#L1707: sched.stwStoppingTimeGC.record(startTime)
proc.go#L1709: sched.stwStoppingTimeOther.record(startTime)
proc.go#L1718: if sched.stopwait != 0 {
proc.go#L1772: lock(&sched.lock)
proc.go#L1780: sched.gcwaiting.Store(false)
proc.go#L1781: if sched.sysmonwait.Load() {
proc.go#L1782: sched.sysmonwait.Store(false)
proc.go#L1783: notewakeup(&sched.sysmonnote)
proc.go#L1785: unlock(&sched.lock)
proc.go#L1812: sched.stwTotalTimeGC.record(totalTime)
proc.go#L1814: sched.stwTotalTimeOther.record(totalTime)
proc.go#L2004: lock(&sched.lock)
proc.go#L2005: sched.nmfreed++
proc.go#L2007: unlock(&sched.lock)
proc.go#L2033: lock(&sched.lock)
proc.go#L2057: mp.freelink = sched.freem
proc.go#L2058: sched.freem = mp
proc.go#L2059: unlock(&sched.lock)
proc.go#L2062: sched.totalRuntimeLockWaitTime.Add(mp.mLockProfile.waitTime.Load())
proc.go#L2071: lock(&sched.lock)
proc.go#L2072: sched.nmfreed++
proc.go#L2074: unlock(&sched.lock)
proc.go#L2152: lock(&sched.lock)
proc.go#L2153: if sched.safePointWait != 0 {
proc.go#L2156: sched.safePointWait = gomaxprocs - 1
proc.go#L2157: sched.safePointFn = fn
proc.go#L2173: for p := sched.pidle.ptr(); p != nil; p = p.link.ptr() {
proc.go#L2176: sched.safePointWait--
proc.go#L2180: wait := sched.safePointWait > 0
proc.go#L2181: unlock(&sched.lock)
proc.go#L2214: if notetsleep(&sched.safePointNote, 100*1000) {
proc.go#L2215: noteclear(&sched.safePointNote)
proc.go#L2221: if sched.safePointWait != 0 {
proc.go#L2230: lock(&sched.lock)
proc.go#L2231: sched.safePointFn = nil
proc.go#L2232: unlock(&sched.lock)
proc.go#L2255: sched.safePointFn(p)
proc.go#L2256: lock(&sched.lock)
proc.go#L2257: sched.safePointWait--
proc.go#L2258: if sched.safePointWait == 0 {
proc.go#L2259: notewakeup(&sched.safePointNote)
proc.go#L2261: unlock(&sched.lock)
proc.go#L2299: if sched.freem != nil {
proc.go#L2300: lock(&sched.lock)
proc.go#L2302: for freem := sched.freem; freem != nil; {
proc.go#L2335: sched.freem = newList
proc.go#L2336: unlock(&sched.lock)
proc.go#L2472: sched.ngsys.Add(-1)
proc.go#L2539: gp.goid = sched.goidgen.Add(1)
proc.go#L2550: sched.ngsys.Add(1)
proc.go#L2607: sched.ngsys.Add(1)
proc.go#L2646: lock(&sched.lock)
proc.go#L2648: unlock(&sched.lock)
proc.go#L2969: lock(&sched.lock)
proc.go#L2970: sched.nmsys++
proc.go#L2972: unlock(&sched.lock)
proc.go#L3010: lock(&sched.lock)
proc.go#L3012: unlock(&sched.lock)
proc.go#L3059: lock(&sched.lock)
proc.go#L3071: unlock(&sched.lock)
proc.go#L3094: unlock(&sched.lock)
proc.go#L3104: lock(&sched.lock)
proc.go#L3112: unlock(&sched.lock)
proc.go#L3141: if !runqempty(pp) || !sched.runq.empty() {
proc.go#L3157: if sched.nmspinning.Load()+sched.npidle.Load() == 0 && sched.nmspinning.CompareAndSwap(0, 1) { // TODO: fast atomic
proc.go#L3158: sched.needspinning.Store(0)
proc.go#L3162: lock(&sched.lock)
proc.go#L3163: if sched.gcwaiting.Load() {
proc.go#L3166: sched.stopwait--
proc.go#L3167: if sched.stopwait == 0 {
proc.go#L3168: notewakeup(&sched.stopnote)
proc.go#L3170: unlock(&sched.lock)
proc.go#L3174: sched.safePointFn(pp)
proc.go#L3175: sched.safePointWait--
proc.go#L3176: if sched.safePointWait == 0 {
proc.go#L3177: notewakeup(&sched.safePointNote)
proc.go#L3180: if !sched.runq.empty() {
proc.go#L3181: unlock(&sched.lock)
proc.go#L3187: if sched.npidle.Load() == gomaxprocs-1 && sched.lastpoll.Load() != 0 {
proc.go#L3188: unlock(&sched.lock)
proc.go#L3197: unlock(&sched.lock)
proc.go#L3220: if sched.nmspinning.Load() != 0 || !sched.nmspinning.CompareAndSwap(0, 1) {
proc.go#L3232: lock(&sched.lock)
proc.go#L3235: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3238: unlock(&sched.lock)
proc.go#L3246: unlock(&sched.lock)
proc.go#L3304: if !sched.gcwaiting.Load() {
proc.go#L3311: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3316: lock(&sched.lock)
proc.go#L3319: sched.stopwait--
proc.go#L3320: if sched.stopwait == 0 {
proc.go#L3321: notewakeup(&sched.stopnote)
proc.go#L3323: unlock(&sched.lock)
proc.go#L3359: hz := sched.profilehz
proc.go#L3391: if sched.gcwaiting.Load() {
proc.go#L3431: if pp.schedtick%61 == 0 && !sched.runq.empty() {
proc.go#L3432: lock(&sched.lock)
proc.go#L3434: unlock(&sched.lock)
proc.go#L3462: if !sched.runq.empty() {
proc.go#L3463: lock(&sched.lock)
proc.go#L3465: unlock(&sched.lock)
proc.go#L3483: if netpollinited() && netpollAnyWaiters() && sched.lastpoll.Load() != 0 && sched.pollingNet.Swap(1) == 0 {
proc.go#L3485: sched.pollingNet.Store(0)
proc.go#L3505: if mp.spinning || 2*sched.nmspinning.Load() < gomaxprocs-sched.npidle.Load() {
proc.go#L3582: lock(&sched.lock)
proc.go#L3583: if sched.gcwaiting.Load() || pp.runSafePointFn != 0 {
proc.go#L3584: unlock(&sched.lock)
proc.go#L3587: if !sched.runq.empty() {
proc.go#L3589: unlock(&sched.lock)
proc.go#L3598: if !mp.spinning && sched.needspinning.Load() == 1 {
proc.go#L3601: unlock(&sched.lock)
proc.go#L3608: unlock(&sched.lock)
proc.go#L3649: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3664: lock(&sched.lock)
proc.go#L3665: if !sched.runq.empty() {
proc.go#L3669: unlock(&sched.lock)
proc.go#L3681: unlock(&sched.lock)
proc.go#L3720: if netpollinited() && (netpollAnyWaiters() || pollUntil != 0) && sched.lastpoll.Swap(0) != 0 {
proc.go#L3721: sched.pollUntil.Store(pollUntil)
proc.go#L3745: sched.pollUntil.Store(0)
proc.go#L3746: sched.lastpoll.Store(now)
proc.go#L3753: lock(&sched.lock)
proc.go#L3755: unlock(&sched.lock)
proc.go#L3779: pollerPollUntil := sched.pollUntil.Load()
proc.go#L3793: if !sched.runq.empty() {
proc.go#L3800: if netpollinited() && netpollAnyWaiters() && sched.lastpoll.Load() != 0 {
proc.go#L3826: if sched.gcwaiting.Load() {
proc.go#L3893: lock(&sched.lock)
proc.go#L3897: unlock(&sched.lock)
proc.go#L3900: unlock(&sched.lock)
proc.go#L3960: lock(&sched.lock)
proc.go#L3963: unlock(&sched.lock)
proc.go#L3970: unlock(&sched.lock)
proc.go#L3977: unlock(&sched.lock)
proc.go#L3982: unlock(&sched.lock)
proc.go#L3991: if sched.lastpoll.Load() == 0 {
proc.go#L3996: pollerPollUntil := sched.pollUntil.Load()
proc.go#L4015: nmspinning := sched.nmspinning.Add(-1)
proc.go#L4060: lock(&sched.lock)
proc.go#L4064: unlock(&sched.lock)
proc.go#L4070: unlock(&sched.lock)
proc.go#L4078: lock(&sched.lock)
proc.go#L4080: unlock(&sched.lock)
proc.go#L4086: npidle := sched.npidle.Load()
proc.go#L4093: lock(&sched.lock)
proc.go#L4095: unlock(&sched.lock)
proc.go#L4100: lock(&sched.lock)
proc.go#L4102: unlock(&sched.lock)
proc.go#L4178: if sched.disable.user && !schedEnabled(gp) {
proc.go#L4182: lock(&sched.lock)
proc.go#L4186: unlock(&sched.lock)
proc.go#L4188: sched.disable.runnable.pushBack(gp)
proc.go#L4189: unlock(&sched.lock)
proc.go#L4306: lock(&sched.lock)
proc.go#L4308: unlock(&sched.lock)
proc.go#L4459: sched.ngsys.Add(-1)
proc.go#L4624: if sched.sysmonwait.Load() {
proc.go#L4641: if sched.gcwaiting.Load() {
proc.go#L4673: lock(&sched.lock)
proc.go#L4674: if sched.sysmonwait.Load() {
proc.go#L4675: sched.sysmonwait.Store(false)
proc.go#L4676: notewakeup(&sched.sysmonnote)
proc.go#L4678: unlock(&sched.lock)
proc.go#L4685: lock(&sched.lock)
proc.go#L4687: if sched.stopwait > 0 && atomic.Cas(&pp.status, _Psyscall, _Pgcstop) {
proc.go#L4703: if sched.stopwait--; sched.stopwait == 0 {
proc.go#L4704: notewakeup(&sched.stopnote)
proc.go#L4709: unlock(&sched.lock)
proc.go#L4862: if sched.disable.user && !schedEnabled(gp) {
proc.go#L4889: if sched.stopwait == freezeStopWait {
proc.go#L4909: if sched.pidle != 0 {
proc.go#L4945: lock(&sched.lock)
proc.go#L4947: if pp != nil && sched.sysmonwait.Load() {
proc.go#L4948: sched.sysmonwait.Store(false)
proc.go#L4949: notewakeup(&sched.sysmonnote)
proc.go#L4951: unlock(&sched.lock)
proc.go#L4980: lock(&sched.lock)
proc.go#L4995: } else if sched.sysmonwait.Load() {
proc.go#L4996: sched.sysmonwait.Store(false)
proc.go#L4997: notewakeup(&sched.sysmonnote)
proc.go#L4999: unlock(&sched.lock)
proc.go#L5222: sched.ngsys.Add(1)
proc.go#L5256: pp.goidcache = sched.goidgen.Add(_GoidCacheBatch)
proc.go#L5353: lock(&sched.gFree.lock)
proc.go#L5354: sched.gFree.noStack.pushAll(noStackQ)
proc.go#L5355: sched.gFree.stack.pushAll(stackQ)
proc.go#L5356: unlock(&sched.gFree.lock)
proc.go#L5364: if pp.gFree.empty() && (!sched.gFree.stack.empty() || !sched.gFree.noStack.empty()) {
proc.go#L5365: lock(&sched.gFree.lock)
proc.go#L5369: gp := sched.gFree.stack.pop()
proc.go#L5371: gp = sched.gFree.noStack.pop()
proc.go#L5378: unlock(&sched.gFree.lock)
proc.go#L5437: lock(&sched.gFree.lock)
proc.go#L5438: sched.gFree.noStack.pushAll(noStackQ)
proc.go#L5439: sched.gFree.stack.pushAll(stackQ)
proc.go#L5440: unlock(&sched.gFree.lock)
proc.go#L5555: n := int32(atomic.Loaduintptr(&allglen)) - sched.gFree.stack.size - sched.gFree.noStack.size - sched.ngsys.Load()
proc.go#L5569: return int32(sched.mnext - sched.nmfreed)
proc.go#L5737: lock(&sched.lock)
proc.go#L5738: sched.profilehz = hz
proc.go#L5739: unlock(&sched.lock)
proc.go#L5791: assertLockHeld(&sched.lock)
proc.go#L5867: assertLockHeld(&sched.lock)
proc.go#L5882: if sched.procresizetime != 0 {
proc.go#L5883: sched.totaltime += int64(old) * (now - sched.procresizetime)
proc.go#L5885: sched.procresizetime = now
proc.go#L6094: lock(&sched.lock)
proc.go#L6095: sched.nmidlelocked += v
proc.go#L6099: unlock(&sched.lock)
proc.go#L6106: assertLockHeld(&sched.lock)
proc.go#L6134: run := mcount() - sched.nmidle - sched.nmidlelocked - sched.nmsys
proc.go#L6139: print("runtime: checkdead: nmidle=", sched.nmidle, " nmidlelocked=", sched.nmidlelocked, " mcount=", mcount(), " nmsys=", sched.nmsys, "\n")
proc.go#L6140: unlock(&sched.lock)
proc.go#L6158: unlock(&sched.lock)
proc.go#L6163: unlock(&sched.lock) // unlock so that GODEBUG=scheddetail=1 doesn't hang
proc.go#L6177: unlock(&sched.lock)
proc.go#L6184: unlock(&sched.lock)
proc.go#L6190: sched.nmspinning.Add(1)
proc.go#L6205: unlock(&sched.lock) // unlock so that GODEBUG=scheddetail=1 doesn't hang
proc.go#L6229: lock(&sched.lock)
proc.go#L6230: sched.nmsys++
proc.go#L6232: unlock(&sched.lock)
proc.go#L6266: if debug.schedtrace <= 0 && (sched.gcwaiting.Load() || sched.npidle.Load() == gomaxprocs) {
proc.go#L6267: lock(&sched.lock)
proc.go#L6268: if sched.gcwaiting.Load() || sched.npidle.Load() == gomaxprocs {
proc.go#L6272: sched.sysmonwait.Store(true)
proc.go#L6273: unlock(&sched.lock)
proc.go#L6284: syscallWake = notetsleep(&sched.sysmonnote, sleep)
proc.go#L6288: lock(&sched.lock)
proc.go#L6289: sched.sysmonwait.Store(false)
proc.go#L6290: noteclear(&sched.sysmonnote)
proc.go#L6297: unlock(&sched.lock)
proc.go#L6300: lock(&sched.sysmonlock)
proc.go#L6310: lastpoll := sched.lastpoll.Load()
proc.go#L6312: sched.lastpoll.CompareAndSwap(lastpoll, now)
proc.go#L6377: unlock(&sched.sysmonlock)
proc.go#L6437: if runqempty(pp) && sched.nmspinning.Load()+sched.npidle.Load() > 0 && pd.syscallwhen+10*1000*1000 > now {
proc.go#L6530: lock(&sched.lock)
proc.go#L6531: print("SCHED ", (now-starttime)/1e6, "ms: gomaxprocs=", gomaxprocs, " idleprocs=", sched.npidle.Load(), " threads=", mcount(), " spinningthreads=", sched.nmspinning.Load(), " needspinning=", sched.needspinning.Load(), " idlethreads=", sched.nmidle, " runqueue=", sched.runq.size)
proc.go#L6533: print(" gcwaiting=", sched.gcwaiting.Load(), " nmidlelocked=", sched.nmidlelocked, " stopwait=", sched.stopwait, " sysmonwait=", sched.sysmonwait.Load(), "\n")
proc.go#L6575: unlock(&sched.lock)
proc.go#L6617: unlock(&sched.lock)
proc.go#L6726: lock(&sched.lock)
proc.go#L6727: custom := sched.customGOMAXPROCS
proc.go#L6728: unlock(&sched.lock)
proc.go#L6739: lock(&sched.lock)
proc.go#L6740: sched.customGOMAXPROCS = false
proc.go#L6741: unlock(&sched.lock)
proc.go#L6752: lock(&sched.lock)
proc.go#L6753: custom := sched.customGOMAXPROCS
proc.go#L6755: unlock(&sched.lock)
proc.go#L6789: lock(&sched.lock)
proc.go#L6790: if sched.disable.user == !enable {
proc.go#L6791: unlock(&sched.lock)
proc.go#L6794: sched.disable.user = !enable
proc.go#L6796: n := sched.disable.runnable.size
proc.go#L6797: globrunqputbatch(&sched.disable.runnable)
proc.go#L6798: unlock(&sched.lock)
proc.go#L6799: for ; n != 0 && sched.npidle.Load() != 0; n-- {
proc.go#L6803: unlock(&sched.lock)
proc.go#L6812: assertLockHeld(&sched.lock)
proc.go#L6814: if sched.disable.user {
proc.go#L6826: assertLockHeld(&sched.lock)
proc.go#L6828: mp.schedlink = sched.midle
proc.go#L6829: sched.midle.set(mp)
proc.go#L6830: sched.nmidle++
proc.go#L6840: assertLockHeld(&sched.lock)
proc.go#L6842: mp := sched.midle.ptr()
proc.go#L6844: sched.midle = mp.schedlink
proc.go#L6845: sched.nmidle--
proc.go#L6856: assertLockHeld(&sched.lock)
proc.go#L6858: sched.runq.pushBack(gp)
proc.go#L6867: assertLockHeld(&sched.lock)
proc.go#L6869: sched.runq.push(gp)
proc.go#L6879: assertLockHeld(&sched.lock)
proc.go#L6881: sched.runq.pushBackAll(*batch)
proc.go#L6888: assertLockHeld(&sched.lock)
proc.go#L6890: if sched.runq.size == 0 {
proc.go#L6894: return sched.runq.pop()
proc.go#L6900: assertLockHeld(&sched.lock)
proc.go#L6902: if sched.runq.size == 0 {
proc.go#L6906: n = min(n, sched.runq.size, sched.runq.size/gomaxprocs+1)
proc.go#L6908: gp = sched.runq.pop()
proc.go#L6912: gp1 := sched.runq.pop()
proc.go#L6954: assertLockHeld(&sched.lock)
proc.go#L6966: pp.link = sched.pidle
proc.go#L6967: sched.pidle.set(pp)
proc.go#L6968: sched.npidle.Add(1)
proc.go#L6983: assertLockHeld(&sched.lock)
proc.go#L6985: pp := sched.pidle.ptr()
proc.go#L6993: sched.pidle = pp.link
proc.go#L6994: sched.npidle.Add(-1)
proc.go#L7011: assertLockHeld(&sched.lock)
proc.go#L7018: sched.needspinning.Store(1)
proc.go#L7136: lock(&sched.lock)
proc.go#L7138: unlock(&sched.lock)
proc.go#L7428: lock(&sched.lock)
proc.go#L7429: out = int(sched.maxmcount)
proc.go#L7431: sched.maxmcount = 0x7fffffff
proc.go#L7433: sched.maxmcount = int32(in)
proc.go#L7436: unlock(&sched.lock)
proc.go#L7511: if i >= active_spin || numCPUStartup <= 1 || gomaxprocs <= sched.npidle.Load()+sched.nmspinning.Load()+1 {
runtime2.go#L1216: sched schedt
trace.go#L234: lock(&sched.sysmonlock)
trace.go#L312: unlock(&sched.sysmonlock)
trace.go#L497: lock(&sched.lock)
trace.go#L502: for mp := sched.freem; mp != nil; mp = mp.freelink {
trace.go#L506: unlock(&sched.lock)
traceruntime.go#L685: assertLockHeld(&sched.lock)